#pragma once
#include <lcir/IR/IRBuilder.h>
namespace lcir {
class IRRewritter : public IRBuilder {
 public:
  /**
   * @param Expression insertPoint插入点，
   * 需要确保isnertPoint已经被插入在lambda内
   */
  IRRewritter(Expression *insertPoint) : IRBuilder(insertPoint) {}
  /**
   * @param Lambda IRbuilder将在该lambda结尾插入Expression
   */
  IRRewritter(Lambda *lambda) : IRBuilder(lambda) {}
	/**
	 * @brief 替换一个Value（替换后会将Value删除）
	 */
	void replaceValue(Value *oldVal, Value *newVal);
  virtual ~IRRewritter() = default;
};
}  // namespace lcir